package dominioDAO;

import hbt.HibernateDAO;
import hbt.HibernateUtil;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import dominioEntity.OrdenPedidoCliente;

public class OrdenPedidoClienteDAO {
	private static OrdenPedidoClienteDAO instancia ;
	private static SessionFactory sf;
	private static Session session;
	
	public static OrdenPedidoClienteDAO getInstancia() {
		if(instancia == null){
			instancia = new OrdenPedidoClienteDAO();
		} 
		return instancia;
	}
	public OrdenPedidoClienteDAO()
	{
		sf = HibernateUtil.getSessionFactory();
	}
	
	protected Session getSession(){
		if(session == null || !session.isOpen()){
			session = sf.openSession();
		}
		return session;
	}
	protected void closeSession()
	{
		if(session.isOpen())
		{
			session.close();
		}
	}
	
	
	@SuppressWarnings("unchecked")
	public List<OrdenPedidoCliente> getOrdenPedidoPendientes(String estado)
	{
		String query = "from OrdenPedidoCliente o where o.estado=:estado ";
		return  (List<OrdenPedidoCliente>) HibernateDAO.getInstancia().parametros(query, "estado", estado);
		
	}
	
	public void grabar(OrdenPedidoCliente OPC) {
		
		Session s = sf.openSession();
		s.beginTransaction();
		s.merge(OPC);
		s.flush();
		s.getTransaction().commit();
		s.close();

	}
}
